Teleconferencing has long been a way for multiple people to communicate with each other using telephony resources. As computing power has increased, videoconferencing has become a more popular manner for multiple people to meet in a way in which they can hear and see each other.
Typically teleconferencing and videoconferencing is either performed using client-based or server-based hosting. An example of client-based hosting would be when a subscriber conferences a third party into an existing phone call. Client-based hosted calls are usually voice only calls. An example of server-based hosting would be when a group of call participants agree to call in to a conference port at a predetermined time. The host or server of the conference call usually receives voice and video output of the various clients in the call, the host then mixes the voice and video into one consolidated output stream that is sent to the clients participating in the call. The clients receive this output stream, which allows each client to hear and see all other participants in the conference call. Each client may be able to see the other clients by tiling the video received in the consolidated output in way that the video sent by each client appears in an individual sub-window or tiled window. Because the videoconference server receives the video and voice output from all the clients and mixes this output, the videoconference server must have a large processing capacity.
With each passing year, the computing power and bandwidth available to clients increases. Rather than increasing processing capacity in a centralized video conferencing server, which is very expensive, it is more cost effective to decentralize the processor intensive functionality so as to leverage the vast amounts of unused processing capacity available at the edge in desktop PCs. If a videoconference server cannot add more people to a call, the service provider that charges for these services may lose revenue. Also, the participants may be disappointed in the limited number of people that can be added to a conference call. Decreasing the server load may lead to increased revenues to service providers and allow for more clients to participate in conference calls.